ইলাস্টিকসার্চ (ElasticSearch)

Caching এবং Index Template ব্যবহার

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Elasticsearch এর Performance Optimization | NCTB BOOK

Elasticsearch-এ Caching এবং Index Template ব্যবহারের মাধ্যমে পারফরম্যান্স অপ্টিমাইজেশন এবং ইনডেক্স ব্যবস্থাপনা সহজ করা যায়। নিচে এই দুটি বিষয়ে বিস্তারিত আলোচনা করা হলো:

১. Caching ব্যবহার

Elasticsearch-এ Caching ব্যবহারের মাধ্যমে সার্চ এবং ইনডেক্সিং কার্যক্রমের পারফরম্যান্স বৃদ্ধি করা যায়। নিচে বিভিন্ন ধরনের ক্যাশ এবং সেগুলোর ব্যবহার সম্পর্কে আলোচনা করা হলো:

Query Cache:

  • Elasticsearch কুয়েরি করার সময় প্রায়শই একই ধরনের কুয়েরি করা হলে কুয়েরি ক্যাশ ব্যবহার করা হয়। এটি একটি নির্দিষ্ট ইনডেক্সের উপর একই ধরনের কুয়েরি পুনরায় করতে পারফরম্যান্স বৃদ্ধি করে।
  • ব্যবহার:
    • Frequently Accessed Queries-এর জন্য ক্যাশ ব্যবহার করুন।
    • ক্যাশ কনফিগার করার সময় মনে রাখতে হবে, শুধুমাত্র ফিল্টারিং কুয়েরি ক্যাশিংয়ের জন্য উপযুক্ত।
  • কনফিগারেশন:
    • index.queries.cache.enabled সেটিং ব্যবহার করে ক্যাশ সক্রিয় করুন। এটি ইনডেক্স লেভেলে কনফিগার করা যায়।

Field Data Cache:

  • Aggregation বা Sorting এর সময় যখন ফিল্ড ডেটা প্রয়োজন হয়, তখন এই ক্যাশ ব্যবহার করা হয়। এটি মেমোরিতে ফিল্ড ডেটা সংরক্ষণ করে যাতে পুনরায় ডেটা লোড না করতে হয়।
  • ব্যবহার:
    • হাই কার্ডিনালিটি (যেমন, keyword ফিল্ড) ফিল্টার বা অ্যাগ্রিগেশন করার সময় Field Data Cache ব্যবহার করা যেতে পারে।
    • তবে, এই ক্যাশ বেশি মেমোরি ব্যবহার করতে পারে, তাই এর সাইজ সীমাবদ্ধ রাখতে হবে।
  • কনফিগারেশন:
    • indices.fielddata.cache.size সেটিং ব্যবহার করে Field Data Cache এর সাইজ নির্ধারণ করা যায়।

Node Query Results Cache:

  • এটি শুধুমাত্র একটি নির্দিষ্ট নোডে ফলাফল ক্যাশ করে রাখে, যা সাধারণত ফিল্টার করা ডেটার জন্য ব্যবহৃত হয়। এটি ক্যাশিংয়ের মাধ্যমে সার্চ পারফরম্যান্স বাড়াতে সাহায্য করে।
  • ব্যবহার:
    • বড় এবং পুনরাবৃত্তি ফিল্টার কুয়েরি বা রেঞ্জ কুয়েরির জন্য এটি কার্যকর হতে পারে।
  • কনফিগারেশন:
    • indices.requests.cache.size ব্যবহার করে ক্যাশের সাইজ কনফিগার করা যায়।

২. Index Template ব্যবহার

Index Template ব্যবহার করে Elasticsearch-এ ইনডেক্স তৈরি এবং কনফিগারেশন প্রক্রিয়া স্বয়ংক্রিয় করা যায়। এটি ইনডেক্স তৈরি করার সময় ডিফল্ট সেটিংস এবং ম্যাপিং অ্যাপ্লাই করতে সাহায্য করে।

Index Template কি:

  • Index Template হল একটি প্রি-ডিফাইন্ড কনফিগারেশন যা ইনডেক্স তৈরি করার সময় স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়।
  • এর মাধ্যমে ইনডেক্সের শার্ড সংখ্যা, রিপ্লিকা সংখ্যা, ম্যাপিং, এবং অন্যান্য সেটিংস পূর্ব নির্ধারিত করা যায়।

Index Template এর সুবিধা:

  • Consistency: নতুন ইনডেক্স তৈরি হলে নিশ্চিত হয় যে ইনডেক্সগুলো একই সেটিংস এবং ম্যাপিং নিয়ে তৈরি হচ্ছে।
  • Automated Configuration: ইনডেক্স কনফিগারেশন ম্যানুয়ালি করার প্রয়োজন নেই, যা সময় সাশ্রয় করে এবং ত্রুটি কমায়।
  • Customizable: প্রতিটি ইনডেক্সের ধরন বা প্যাটার্ন অনুযায়ী ভিন্ন ভিন্ন টেমপ্লেট সেট করা যায়।

Index Template কনফিগার করার ধাপ:

  1. Template Name এবং Index Pattern নির্ধারণ করুন: টেমপ্লেটের জন্য একটি নাম দিন এবং কোন ধরনের ইনডেক্সে এটি প্রযোজ্য হবে তা নির্ধারণ করুন। যেমন, log-* প্যাটার্ন ব্যবহার করলে, সমস্ত log- দিয়ে শুরু হওয়া ইনডেক্সে এটি প্রযোজ্য হবে।
  2. Settings, Mappings, এবং Aliases সংজ্ঞায়িত করুন:
    • Settings: যেমন, শার্ড সংখ্যা (number_of_shards), রিপ্লিকা সংখ্যা (number_of_replicas), এবং অন্যান্য ইনডেক্স লেভেল সেটিংস নির্ধারণ করুন।
    • Mappings: ইনডেক্সের ফিল্ড ম্যাপিং প্রি-ডিফাইন্ড করুন, যাতে ডেটা টাইপ, ফিল্ড প্রপার্টিজ, এবং অ্যাগ্রিগেশন সম্বন্ধিত সেটিংস নির্ধারণ করা যায়।
    • Aliases: ইনডেক্সের জন্য উপযুক্ত আলিয়াস সেট করতে পারেন, যা ইনডেক্স ম্যানেজমেন্ট সহজ করে।

Index Template তৈরি করার উদাহরণ:

  • এই টেমপ্লেটটি logs-* প্যাটার্নের ইনডেক্সে প্রযোজ্য হবে এবং ইনডেক্স তৈরির সময় স্বয়ংক্রিয়ভাবে শার্ড, রিপ্লিকা সংখ্যা, এবং ম্যাপিং প্রয়োগ করবে।
PUT _index_template/logs_template
{
  "index_patterns": ["logs-*"],
  "template": {
    "settings": {
      "number_of_shards": 3,
      "number_of_replicas": 1
    },
    "mappings": {
      "properties": {
        "timestamp": {
          "type": "date"
        },
        "message": {
          "type": "text"
        },
        "log_level": {
          "type": "keyword"
        }
      }
    }
  }
}

সারসংক্ষেপ

Caching এবং Index Template Elasticsearch-এ পারফরম্যান্স এবং ইনডেক্স ম্যানেজমেন্ট উন্নত করার গুরুত্বপূর্ণ উপায়।

  • Caching সার্চ কার্যক্রম দ্রুততর করে এবং ইনডেক্সিং প্রসেসে লোড কমায়।
  • Index Template ইনডেক্স তৈরির সময় কনফিগারেশন স্বয়ংক্রিয়ভাবে পরিচালনা করে এবং ইনডেক্সের কনসিস্টেন্সি নিশ্চিত করে।

এই দুটি পদ্ধতি সঠিকভাবে ব্যবহার করলে Elasticsearch এর স্কেলেবিলিটি এবং কর্মক্ষমতা উল্লেখযোগ্যভাবে উন্নত করা যায়।

Content added By
Promotion